专利摘要:
本開示は、マルチマスター同期環境におけるネットワーク・ノード間で行う同期に関し、同期させるオブジェクト(1つまたは複数)の起動および/または失効の観念を含むように、知識に基づく同期フレームワークを拡張する。この同期フレームワークによれば、同期させたデータの1つ又は複数のオブジェクトがいつ知識交換の目的で成立すべきか、および/または同期させたデータの1つ又は複数のオブジェクトがいつ知識交換の目的で存在するのを中止すべきかの定義を可能にするような方法で、終点がデータを同期することができるという利点がある。一実施形態では、所与のオブジェクトに対して、当該オブジェクトについての有効期限情報を表す知識ベクトル上に追加の次元(1つまたは複数)を置くことができる。同期プロセスの間この有効期限情報を根拠として、同期アプリケーションまたはプロセスによるオブジェクトに対する動作をその有効期限の間だけ許可する。
公开号:JP2011511362A
申请号:JP2010544987
申请日:2008-12-31
公开日:2011-04-07
发明作者:コースラヴィ,モエ
申请人:マイクロソフト コーポレーション;
IPC主号:G06F12-00
专利说明:

[0001] [0001]主題の開示は、マルチマスター同期環境のための知識ベース同期フレームワークにおける同期オブジェクト(1つまたは複数)の起動(initiation)および/または終了(expiration)に関する。]
背景技術

[0002] [0002]モバイルコンピューティングおよび通信デバイスの普及により、これに対応して、ユーザーが望むときにはいつでも情報を配信および受信できることの要望が生まれた。単純に言うと、ユーザーは、どこでも、いつでも、そしてデバイスの能力がどうであっても、種々のデバイスから情報およびアプリケーションに対して、どこででもアクセスできることを望む。加えて、ユーザーはそのような情報にその場でアクセスおよび更新できることを望み、更にデータができるだけ正しく最新であることの保証を望む。]
[0003] [0003] データの複製をデバイスおよびオブジェクトに互いに共有させようとする種々の分散型データ・システムがある。例えば、音楽共有システムは、PC、セル・フォン、ゲーミング・コンソール、およびMP3プレーヤー間で音楽を同期することができる。電子メール・データも、ワーク・サーバー、クライアントPC、および携帯用電子メール・デバイス間で同期することができる。しかしながら、今日、このようなデバイスが互いに1組の共通情報を同期する場合に限って言えば、同期はデバイス間における静的設定にしたがって行われる。しかしながら、これらのデバイスが頻繁にまたは間欠的に切断される場合、即ち、これらが疎に結合されており、互いの通信から切断される可能性がある場合、例えば、セル・フォンがトンネルの中に入ったとき、または同期すべき多数のデバイスが動き回っているときには、これらのデバイスが互いに再度接続するとき、またはこれらがネットワークに加入する際には、他方の各デバイスにどのような変化が必要となるのか判断するために、トポロジーに依存しない方法を有することが望ましくなる。]
[0004] [0004]図1に示すように、今日、電子メール・サーバーが電子メール・クライアントと同期するときというように、マスター・ノード100がクライアント・ノード110と排他的に(dedicated manner)同期する場合には種々の例がある。2つのデバイス間の同期が排他的であるために、2つのデバイス間で同期する必要がある情報102を、マスター・ノード100が追跡することができる。また、このような情報102は、任意にクライアント・ノード110が追跡することもできる。しかしながら、マスター・ノード100とクライアント・ノード110との間の接続がときどき断絶するとき、または多数の同期デバイスが急激に増大または減少する可能性があるとき、各デバイスがこれらのデバイス全てを跨いで必要とする共通情報から必要な情報を追跡することは、難しい問題となる。] 図1
[0005] [0005] 現在の解決策は、多くの場合、その同期セマンティクス(synchronization semantics)は、あらゆるノードではなく、特定のノード(例えば、電子メール・サーバー)のクロックまたは論理透かしのみに基づいている。これらのシステムは、1つの接続ノードまたはマスターの場合にはうまく作用することができる。しかしながら、ノードが接続するトポロジー即ちパターンが予期不能に変化する可能性がある場合、これらには問題が生ずる。]
[0006] [0006] 他のシステムでは、特定の種類のデータ・オブジェクトに対して固有の(proprietary)同期モデルを構築し、前述の問題に対処するために、デバイスを跨るデータ・フォーマットに特定的な、膨大な量のプリミティブ・メタデータを追跡する。例えば、特定のワープロ文書フォーマットのオブジェクトを同期する際、文書およびその基礎的プリミティブを表し、共通な1組のワープロ文書にしたがって同期することを望む他のデバイスにその情報を効率的に表示するには、多量のオーバーヘッドおよび複雑さが混入する。何故なら、これらは時間と共に変化するからである。このようなシステムを構築するには費用がかかりしかも複雑であること、そしてこれらのシステムが基本とするカスタム・データ・フォーマットのために拡張可能でないことに加えて、このようなシステムは、大量のメタデータを発生し、分析し、追跡しなければならないため、本来的にスケーリングができない。]
[0007] [0007] 加えて、このような解決策は、1つの特定ドメイン、例えば、ワープロ文書にしか適用できない。全てのタイプのオブジェクト、例えば、ピクチャー、ビデオ、電子メール、文書、データベース・ストア等の同期を考慮する場合、マルチマスター環境において全てのデバイスに跨ってこのようなオブジェクトの発展を追跡するために、各オブジェクト・タイプに基づいてカスタム同期解決策を実現することは、今日では実行不可能である。したがって、このような解決策は同期セマンティクスをデータ・セマンティクスにリンクすることを解決できない。]
[0008] [0008] つまり、あるトポロジーのコンピューターが互いに接続する方法を変更するとき、またはコンピューターの数が増大するにつれて、ノードに独立した同期の知識が必要になる。例えば、メディア・プレーヤでは、多数のコンピューターおよび多数のウェブサイト間で同期することが望ましい場合もあり得る。殆どの場合、殆どのアプリケーションは、数箇所の周知の終点(ホームPCおよびメディア・プレーヤ)間でしかデータを同期することができない。しかしながら、時と共にデバイス共同体がメディア・プレーヤ・アプリケーションのユーザーにまで発展すると、デバイスが利用する音楽ライブラリに対するデータ同期柔軟性の要望が増大することにより、一層ロバストなシステムの要望が生ずる。]
[0009] [0009] この要望は、コンピューティングオブジェクトの大半がある意味では短命である、即ち、限られた有効期限でしか使用されないことを考慮すると、更に一層複雑になる。したがって、複雑なマルチマスター・ネットワーク・トポロジーのデバイスにおける知識交換の際に、いつオブジェクトを生じさせそして消滅させればよいか表すことができれば、無数の同期状況には望ましいであろう。多様な状況において同期を可能にすることに加えて、マルチマスター同期環境におけるオブジェクトの有効期限についての情報を表しそして組み合わせ、更にオブジェクトの有効期限を制御することができれば、オブジェクトに関連が出てきたときにこれらを起動し、もはや関連がなくなったときにオブジェクトを除去することによって、全てのノードに跨って一層インテリジェントかつ効率的なオブジェクトの表現が可能になるであろう。]
発明が解決しようとする課題

[0010] [0010] これに関して、従来のシステムは、電子メール・ストアのような、具体的に特定できるオブジェクト集合に対して動作するカスタム・プロセスの一部として、「削除」動作を行うだけに過ぎなかった。例えば、保持方針(retention policy)の一部として、電子メール・プログラムのようなアプリケーションは、デフォルトで6カ月よりも古い電子メールは全て、保存のフラグが立てられている電子メール・オブジェクトを除いて削除するカスタム・コードを具体的に実装することができる。しかしながら、このようなカスタム・コードは、アプリケーションによって管理されるドメインにおける全てのオブジェクトに跨る静的なワークフローおよび方針の一部として動作するに過ぎず、非常に柔軟ではない。その結果、オブジェクトを削除する方法を変更するためには、アプリケーションのワークフローを変更する必要がある。]
[0011] [0011] つまり、いつオブジェクトをデバイスまたはデバイスのアプリケーションの知識から除去すべきか指定する方法が求められている。同様に、いつオブジェクトをデバイスまたはデバイスのアプリケーションの知識に組み込むべきか指定することができれば望ましいであろう。言い換えると、オブジェクト自体を記述する同期メタデータにオブジェクトの起動および分解の一般的な観念を組み込み、どのデバイスがオブジェクトの知識を取得するかには関係なく、起動および分解の観念を解釈できるようにすれば望ましいであろう。つまり、同期モデル全体の一部としてオブジェクトをインスタンス化/起動および分解し、オブジェクトの起動および分解をオブジェクト毎に、そしてどのノードがオブジェクトを格納しているかには関係なく、マルチマスター同期体験の一部として、適用できるようにすることができれば望ましいであろう。]
[0012] [0012] 以上に述べた今日の同期モデルの欠点は、単に従来システムの問題の一部の全体像を呈示することを意図するのであって、それだけで全てであると言うつもりはない。従来のシステムに伴うその他の問題や、本明細書に記載する種々の非限定的な実施形態の対応する効果も、以下の説明を検討することにより、更に明白となるであろう。]
課題を解決するための手段

[0013] [0013] ここで、更に詳細な説明および添付図面に続く非限定的な実施形態例の種々の態様の基本的または全体的理解を可能にするのに役立てるために、簡略化した摘要を提示する。この摘要は、しかしながら、広範なまたは余すところのない全体像であることを意図するのではない。逆に、この摘要の唯一の目的は、以下に続く種々の実施形態の更に詳細な説明に対する序文として、簡略化した形態で非限定的実施形態例の一部に関する概念の一部を紹介することである。]
[0014] [0014] 本明細書において記載する種々の実施形態は、マルチマスター同期環境における複数のネットワーク・ノード間で行う同期に関し、同期させるオブジェクト(1つまたは複数)の起動および/または失効の観念を含むように、知識に基づく同期フレームワークを拡張する。この同期フレームワークによれば、同期させたデータの1つ又は複数のオブジェクトがいつ知識交換の目的で成立すべきか、および/または同期させたデータの1つ又は複数のオブジェクトがいつ知識交換の目的で存在するのを中止すべきかの定義を可能にするような方法で、終点(endpoints)がデータを同期させることができるという利点がある。一実施形態では、所与のオブジェクトに対して、当該オブジェクトについての増分有効期限情報(incremental lifetime information)を表す知識ベクトル上に追加の次元(1つまたは複数)を置くことができる。同期プロセスの間この増分有効期限情報を根拠として、同期アプリケーションまたはプロセスによるオブジェクトに対する動作をその有効期限の間だけ許可する。]
[0015] [0015] これらおよびその他の実施形態について、以下で更に詳細に説明する。]
図面の簡単な説明

[0016] [0016] 添付図面を参照しながら、種々の非限定的な実施形態について更に説明する。図面において、
図1は、2つの確定した終点間における同期に備えた排他的同期システムを示す。
図2は、同期させるオブジェクトについての有効期限情報を含む同期メタデータを組み込むマルチマスター同期のインフラストラクチャの上位ブロック図を示す。
図3は、ネットワークから接続および切断するノードの存在下において、有効期限同期メタデータに基づいて同期する非限定的プロセス例を示す流れ図である。
図4は、有効期限同期メタデータに基づいて同期を行う非限定的プロセス例を示す別の流れ図である。
図5は、疎に接続されたノードのネットワークの内4つのノード間における、非限定的な知識交換例を示す。
図6は、デバイスの一部が互いに切断されていくときにおける、疎に接続されたノードのネットワークの内4つのノード間における、非限定的な知識交換例を示す。
図7は、ネットワークのノード間で共有される多数のオブジェクトというコンテキストにおける知識交換例を示す。
図8は、ネットワークのノード間で共有される多数のオブジェクトというコンテキストにおける知識交換例を示す。
図9は、ネットワークのノード間で共有される多数のオブジェクトというコンテキストにおける知識交換例を示す。
図10は、ネットワークのノード間で共有される多数のオブジェクトというコンテキストにおける知識交換プロセスを示す、非限定的な流れ図の例である。
図11は、知識に基づいて変化を要求および伝達するフレームワークを示す総合的アーキテクチャーである。
図12は、それぞれ、オブジェクト同期の起動および失効を示す全体的な流れ図である。
図13は、それぞれ、オブジェクト同期の起動および失効を示す全体的な流れ図である。
図14は、知識に基づく同期フレームワークにおける同期変化過程(life cycle)にしたがうオブジェクトについての状態遷移を示す。
図15は、本明細書において記載する種々の実施形態による、起動前から起動、そして終了までのオブジェクトの進展を示す流れ図である。
図16は、1組の共通APIを通じて他のノードと知識交換を行うデバイスの非限定的な実施態様例のブロック図である。
図17は、本明細書において記載する種々の実施形態を実現することができる、非限定的なネットワーク状環境例を表すブロック図である。
図18は、本明細書において記載する種々の実施形態の1つ又は複数の態様を実現することができる非限定的なコンピューティングシステムまたは動作環境例を表すブロック図である。] 図1 図10 図11 図12 図13 図14 図15 図16 図17 図18
実施例

[0017] 全体像
[0032]背景において論じたように、とりわけ、従来のシステムは、オブジェクトの削除を、全てのデータに跨る1つ又は複数の削除方針を実施する外部ワークフローの一部として実行するに過ぎない。その結果、柔軟性は、予め異なるオブジェクトのために組み込まれている範囲でしか存在せず、オブジェクトのクラス数、および異なる方針が増えるにつれて、このような削除プロセスは過度に複雑になることがわかる。つまり、オブジェクトの起動およびオブジェクトの除去の観念を、同期自体の言語に組み込んで、「オブジェクトをインスタンス化すべきとき」および「オブジェクトを削除すべきとき」を同期知識の一部として定義方法が求められている。同期知識は、オブジェクトについての同期メタデータを効率的に表し、マルチマスター同期環境における同期に用いることができる。]
[0018] [0033] したがって、種々の非限定的実施形態では、同期メタデータの効率的表現が、デバイス間においてデータのマルチマスター同期のために提供される。このデータは、オブジェクトを起動してその有効期限を開始するとき、および/またはオブジェクトを削除してその有効期限を終了させるときを記述する。アプリケーションのドメイン内における全てのオブジェクトに跨ってアプリケーション・ワークフォローの一部として適用される具体的な起動または分解方針を必要とする従来システムとは対照的に、起動および削除の観念は、オブジェクトについての同期メタデータ、例えば、オブジェクト識別子、バージョン等を記述する知識フレームワークの一部として組み込まれている。]
[0019] [0034] これに関して、大多数のコンピューティングオブジェクトは、ある意味では短命である。つまり、デバイスの複雑なマルチマスター・ネットワーク・トポロジーにおける知識交換の際に、いつオブジェクトを生じさせそして消滅させればよいか表すことができれば、無数の同期状況には望ましいであろう。同期状況には、オブジェクトに対する権利期間満了についてのディジタル権利管理(DRM)、カレンダ・オブジェクトのインスタンス化遅延というような、オブジェクトに適用されるスケジューリング等が含まれるが、これらに限定されるのではない。]
[0020] [0035]アプリケーションが、データに対する永続的なビュー以外の何かから利益を得ることができ、更に、オブジェクトのために保持されている同期メタデータにインテリジェンスを移動させることによってオブジェクトの起動および削除の管理から解放されることから利益を得ることができるときはいつでも、本明細書に記載する種々の実施形態を効果的に適用することができる。つまり、マルチマスター同期環境においてオブジェクトの有効期限についての同期知識において情報を表しそして組み合わせることができると、オブジェクトの有効期限に制限があり得る種々の状況には有利である。]
[0021] [0036] 以下に続くものについてのロードマップとして、最初に、本明細書に記載する実施形態の一部の全体像を紹介する。次いで、マルチマスター・データ同期システムにおいて効率的に知識を表すための総合的メカニズムについて、何らかの補足的なコンテキストを示す。次に、補足的コンテキストおよびこのようなマルチマスター・データ同期システムの理解のために、非限定的な実施形態例および特徴について更に詳細に論じ、続いて、このような実施形態を実現することができる代表的なネットワークおよびコンピューティング環境について論ずる。]
[0022] [0037]図2は、マルチマスター同期環境において同期するオブジェクトの概念を概略的に示すブロック図であり、オブジェクトは、当該オブジェクトについて定義された同期メタデータにしたがって、起動または分解される。図示のように、デバイス200およびデバイス210がネットワーク(1つまたは複数)220を通じて、それぞれ、同期コンポーネント202、212によって互いに接続されて、同期している様子が示されている。各同期コンポーネント202、212は、ストレージ204、214にオブジェクトを格納しており、更に、これらのオブジェクトの同期知識206、216をそれぞれ維持している。これについては、以下で更に詳しく説明する。これに関して、データ・タイプやネットワーク・トポロジーとは無関係に同期するために用いられる同期知識206、216は、いつオブジェクトを開始しいつ終了させるかを記述するメタデータを含めるように増強することができる。] 図2
[0023] [0038]メタデータがオブジェクトの開始を記述する場合、これは、オブジェクトが将来のある時点で作成され、次いでオブジェクトの同期に関与することを意味することができる。あるいは、これは、オブジェクトが作成されるまたは既に作成されており、そしてこのオブジェクトは、開始されるまでは、同期には関与しないことを意味することができる。メタデータがオブジェクトの終了を記述する場合、これは、1組の同期されるオブジェクトに包含される場合に同期に関与するのを止めることを意味することができる。あるいは、これは、オブジェクトおよびこのオブジェクトに関するあらゆるメタデータが削除されること、またはオブジェクトは削除される可能性があるがこのオブジェクトを記述するメタデータは削除されないことを意味することができる。]
[0024] [0039]図3は、マルチマスター同期環境において種々のノード間で同期を行うことを目的とした、オブジェクトについての「有効期限」情報として、オブジェクトの「開始」および「終了」を記述する全体的な流れ図を示す。300において、ある時点で、オブジェクトについて、限定された有効期限を有するという同期メタデータを定義し、マルチマスター同期環境におけるいずれかのネットワーク・トポロジーにしたがって敷設された1つ又は複数のネットワークを通じて、1つのノードが他のノードに接続する。310において、ノードは、同期メタデータを学習することができる。即ち、メタデータを受信する、または他のノードに要求して受信する。あるいは、ノードは同期メタデータを別のノードに送ることもでき、この場合、メタデータは、同期しようとするオブジェクト集合についてのバージョン変更情報(versioning information)を記述し、オブジェクトの開始および/または終了についての情報を含む有効期限情報を含む。] 図3
[0025] [0040] 320において、2つのノードの同期メタデータを比較して、これらのオブジェクトについての有効期限情報の集合知識を決定する。330において、任意に、これらのオブジェクトの集合についての有効期限情報の集合知識に基づいて、有効期限が開始したが終了していないオブジェクトを同期させる。340において、有効期限が終了しているオブジェクトを削除することができる。350において、任意に、別のノードがビデオ・データを直ちに必要とすることを予測することができれば、まだ開始していないオブジェクトであっても、例えば、その別のノードにおいて表示の準備ができているビデオ・データに同期させることができる。]
[0026] [0041]図4は、マルチマスター環境における同期のための知識フレームワークにおける同期メタデータとして、有効期限情報の代表的な実施態様を示す流れ図である。400において、マルチマスター同期環境においていずれかのネットワーク・トポロジーにしたがって敷設された1つ又は複数のネットワークを通じて、あるノードが他のノードに接続する。410において、以下で更に詳細に説明する知識交換にしたがって、同期が開始する。] 図4
[0027] [0042] 420において、各オブジェクトのメタデータから、ノードの同期コンポーネントが、メタデータにおいて表されているオブジェクトのオブジェクト起動チックカウント(initiate tickcount)がオブジェクト開始数以上であるか否か判断する。以上である場合、そのオブジェクトは既に起動されており、同期される。430において、同様に、各オブジェクトのメタデータから、ノードの同期コンポーネントが、メタデータにおいて表されているオブジェクトのオブジェクト終了チックカウンタがオブジェクト失効数以上であるか否か判断する。以上である場合、オブジェクトは失効しており、知識交換の一部としてこのオブジェクトを同期させる。これは440において反映されており、起動されたが失効していないオブジェクトを同期する。任意に、450において、未だ起動されていないオブジェクト(例えば、何らかの方法で同期する)、または失効したオブジェクト(例えば、オブジェクトを削除する)に対して他の動作を行うこともできる。
効率的な知識表現および交換
[0043] 種々の非限定的な実施形態によるマルチマスター同期環境において知識として表される同期メタデータによってオブジェクトの起動および削除を記述する序文として、この状況において、データ同期システムにて知識を効率的に表す一般的なメカニズムの全体像を紹介する。]
[0028] [0044] 一般的なメカニズムは、(1)第1ノードから第2ノードに送る必要がある最小限のデータを要求することによって、接続されているデバイス間における知識の効率的な交換、(2)第1ノードと第2ノードとの間におけるデータの状態についての不一致、即ち、矛盾を効率的かつ正しく理解できること、(3)任意の数のノードを同期できること、および(4)いずれのノードでも他のいずれのノードを通じてでも同期できること、即ち、ピア・ツー・ピア、マルチマスター同期環境において動作できることを含む。]
[0029] [0045] この一般的なメカニズムによって、いずれの回数の変更でも、2つのデバイス間で共有すべき情報に対して行うことができる。これらが接続されるいずれの時点でも、その知識を互いに交換することによって、これらは、デバイス間の変更を容易にするために互いに知っていることおよび知らないことを再現するために必要な少なくとも最小量の情報を知ることになる。尚、2つよりも多いデバイスが関与する場合、知識は、共有すべきもっと大きな情報の基盤の中における不完全な情報であるかもしれないが、多数のデバイス間で共有する知識が増えるにつれて、時と共に他のデバイスに接続すれば、これらのデバイスによって集合的な知識が継続的に得られることを注記しておく。]
[0030] [0046] 有利なのは、種々の非限定的な実施形態において、オブジェクト集合の最新バージョンを維持することに関心がある全てのデバイスの集合、またはデバイスの部分集合に対して同期が実行されるだけでなく、このようなデバイスが、集合における他のオブジェクトと接続することおよび接続から外れることも可能になることである。デバイスが1つ又は複数のネットワークを通じてデバイス集合における他のデバイス(1つまたは複数)と再度接続するときはいつでも、このデバイスは、他のデバイス(1つまたは複数)がその集合的知識によって表すのと同じ最新の集合的知識を再度取得する。このように、疎に接続されているデバイスであっても、デバイスの集合と接触することおよび解除することができ、ついで集合的知識の最新集合を所持するいずれのデバイス集合と接触することによって失われた全ての知識を再学習することができる。]
[0031] [0047]図5は、いずれの数のデバイスに対しても、知識が一般化可能であるまたはスケーラブルであることを示す。図示のように、4つのデバイス500、510、520、および530が、知識表現502、512、522、および532と共に示されている。知識表現502、512、522、および532は、それぞれ、各デバイスが、当該デバイスを跨って共有される共通情報の集合について、知っていることおよび知らないことを示す。] 図5
[0032] [0048] 有利なのは、図6に示すように、ネットワークにおける接続が断絶されても、それにも拘わらず、1つの接続が他のデバイスに対して直接または間接的に存在する限り、デバイス500、510、520、および530の全てによって、完全な知識集合を得ることができることである。例えば、図示のように、デバイス530の知識532は、デバイス520との知識交換を通じて、次いでデバイス520と510との間の知識交換を通じて、そして最後にデバイス510と500との間の知識交換を通じて、デバイス500に到達することに変わりはない。] 図6
[0033] [0049]共有すべき共通情報についての知識を共有するデバイスが増えると、種々の非限定的実施形態による知識交換(1回または複数回)は、どのデバイスから集合的知識が来たのかということについては寛容になるので、これらのデバイス全てが利益を得る。デバイスは、各々、それが接続されている他のデバイスのいずれからも、デバイス間で共有する情報についてできるだけ多くの知識を得ようとして、独立して動作する。]
[0034] [0050] 非限定的な詳細の一例において、2つのノードが会話に加わり、この会話の終了時に、関係するデータ集合について同等の知識を有する方法について更に詳しく説明する。この方法は、ピア・ツー・ピア・ネットワーク/マルチマスター環境に入る新たなデバイス毎に、知識交換能力を形成することによって、2つのノードを超えてスケーラブルである。]
[0035] [0051] つまり、図7に示すように、いずれの数のノードでも有するピア・ツー・ピア・ネットワークのノード700は、ノード710とデータを交換することを望んでいる。ノードAは、ノード710に変更を要求することによって開始し、そうするために、図示のように、ノード700はその知識(KN700で示す)をノード710に送る。] 図7
[0036] [0052]デバイスまたはノードの知識は、文字の識別子によって、各オブジェクトがデバイス間で共有される表記を付けることによって表され、最後の数値は、このオブジェクトの最新バージョンを表す。例えば、図7に示すようなKN700はオブジェクトA、B、C、およびDを含み、これらは各々ノード700および710間で同期され、オブジェクトの各々に続く数値は、デバイス上で知られている当該オブジェクトの最新バージョンを表す。例えば、時点t=1における知識KN700は、第5バージョンのA、第4バージョンのB、第7バージョンのC、および第1バージョンのDを含み、図7では、A4、B3、C6、D0と表記されている。対照的に、時点t=1におけるノード710の知識KN710は、第4バージョンのA、第7バージョンのB、第7バージョンのC、および第3バージョンのDを含むことができ、図7ではA3、B6、C6、D2と表記されている。] 図7
[0037] [0053]図8に示すように、時点T=2において、ノード710は、ノード700から受信した知識KN700をそれ自体の知識KN710と比較し、何をノード700に送る必要があるのか判断する。この例では、結果的に、ノード710はノード700に、BおよびDに関する変更を送る。何故なら、ノード700のB3、D0の知識はノード710のB6およびD2の知識よりも遅れているからである。ノード710がノード700にB6およびB3間の変更、ならびにD2およびD0間の変更を送るとき、それが有する知識KN710の最新バージョンも一緒に送る(ノード710において最後の変更を行ったときにはいつでも)。] 図8
[0038] [0054] 時点t=3を表す図9に示すように、知識KN710をノード700に送ることによって、ノード700およびノード710の双方が同じバージョンでありながらオブジェクトに変更を加えたことを後に発見した場合、ノード700は矛盾を検出することができる(例えば、これらを後の解決のために格納する)。これによって、自律的更新、効率的な列挙(enumeration)に対処するだけでなく、ノードが変更に気付いたときまたは変更を交換するときには、正しい矛盾の検出にも対処する。例えば、この例では、C6が知識KN710およびKN710の双方において同じオブジェクトでない場合、例えば、双方が独立してC5からC6に発展した場合、どちらのC6が正しいC6であるかを、例えば、同期の状況および関与するデバイスに適した既設定の方針解決にしたがって、矛盾解決のために別途設定することができる。] 図9
[0039] [0055] 前述の一般的なメカニズムを用いた分散型マルチマスター同期環境のいずれか2つのノード間における知識交換プロセスの一例を、図10の流れ図に示す。1000において、ノードAはノードBとの同期を要求することによって、ノードAが知らない変更についてノードBに尋ねる。ノードBに授けるために、1010において、ノードAはその知識をノードBに送る。1020において、ノードBは、ノードAから受信した知識をそれ自体の知識と比較して、ノードBが知っている知識の内何をノードAに送るべきか判断する。1030において、ノードBはこのような変更をノードAに送り、加えて、ノードBはその知識もノードAに送り、ノードAが1040において同様の知識比較を行えるようにする。本明細書に記載する実施形態によれば、メタデータにしたがって終了したオブジェクトまたは開始していないオブジェクトは同期されない。] 図10
[0040] [0056] 1050において、ノードAおよびノードBにおいて独立したバージョンの発展があった場合、ノードAは、ノードBの知識において反映されている最新バージョンと、ノードAの知識において反映されている最新バージョンとの間に潜在的な矛盾があれば、そのいずれをも検出する。任意に、矛盾の場合にどのノードが他方のノードに勝つか判断するためには、いずれの矛盾解決方針でも適用することができる。1060において、ノードAからの最新の変更の内ノードBが所持していないものがノードBに送られる。矛盾解決方針は、加えて、ノード間で共通の情報を維持するために、ノードBからノードAに、またはノードAからノードBに何らかの変更を送るか否か指図する。独立したバージョン変更がOKである、または望ましい場合、矛盾解決を行わないという別の選択肢がある。本明細書に記載する実施形態によれば、メタデータにしたがって終了したオブジェクトまたは開始していないオブジェクトは同期されない。]
[0041] [0057]図11は、知識の選別(filter)が可能なとき、即ち、ノードの知識の部分集合を他のノードの1つ又は複数と同期させるべき場合の、一般化した知識交換メカニズムを示す。図示のように、各複製AおよびBは、それぞれ、同期プロバイダー(synchronization provider)PAおよびプロバイダーPBを有する。これに関して、各複製AおよびBは、それぞれ、知識KAおよびKBを維持しており、潜在的に選別知識FAおよびFBも維持することもできる。部分集合を作らない場合と同様、複製のいずれもが、他の複製の変更1100を要求することができ、更に他の複製が変更を伝えることに応答して、変更1110を受信することができる。図示のように、複製Aは、1100において、所与の範囲のオブジェクトの集合に対する変更を要求することができ、この集合のオブジェクトの有効期限についての情報を含むその知識を送る。同様に、1110において、知識KAおよびKBの分析に基づいて、1110において、複製Bは知っているが複製Aは知らない変更を、未だ有効期限以内であるオブジェクトについて、複製Aに送る。選別知識FAおよび選別知識FBが同じ範囲でない場合、一般化した知識の変更と同様、次のようになる。] 図11
[0042] [0058] KA=KA∪KB
[0059]選別知識FAおよび選別知識FBが同じ範囲でない場合、知識は、代わりに、既存の知識と、それぞれのフィルタFAおよびFBの交叉上に投影した他方の複製の知識との関数となり、次のように表される。]
[0043] [0060] KA=KA∪(KB→(FA∩FB))
[0061] 用途の中でもとりわけ、これらの形式のフィルタの非限定的な用途の例は、同期フレームワークのコラム、即ち、何らかの変更単位を選別することである。これが特に該当するのは、コラム変更はシステムにおける移動動作の対象となる可能性が低いからである。この状況について注記するに値する2つの考慮点がある。即ち、フィルタ表現および知識合同である。]
[0044] [0062]フィルタ表現に関して、移動フィルタ(move filter)がない場合のフィルタ表現は次の通りである。各フィルタは、当該フィルタ内に含まれる変化単位(change unit)のリストとして表される。この表現は、便利な表現手段を備えるだけでなく、必要なときにフィルタを組み合わせる能力も備えている。このフィルタを組み合わせる能力は、知識を合同するために有用である。]
[0045] [0063] 知識合同に関して、知識をその最も簡潔な形態に保つために、知識を合同する能力を維持しなければならない。これに関して、知識をその最も密集した形態に維持することができるように、選別した知識の断片を合同することができる。]
[0046] [0064]フィルタを組み合わせる能力について検討すると、フィルタは変化単位の集合として表すことができるので、フィルタにおける重複は、双方のフィルタ内に存在する変化単位の集合を分離することによって、調和させることができる。]
[0047] [0065] また、フィルタのベクトルは、当該フィルタ内における個々の変化単位の各々に適用されるので、フィルタの組み合わせは、双方のフィルタにおける変化単位毎に、変化単位に対して組み合わされたベクトルを発見することによって行うことができる。次いで、一旦ベクトルの全てが分かったならば、共通ベクトルを有する変化単位を再度組み合わせて新しいフィルタにする。]
[0048] [0066] したがって、知識の観念は、マルチマスター同期ネットワークの多数のノード間における知識交換のためのデータを効率的に表現するために用いることができ、ネットワークのいずれのノードも、ノード同士間で同期させるために、共通情報または共通情報の部分集合を独立して発展させることができる。前述の知識に基づくフレームワークは、マルチマスター同期環境に合わせて実現することができ、以下で更に詳しく説明するように、フレームワークは、効率的な同期メタデータを通じて、オブジェクトの起動および削除の観念を組み込むように拡張可能である。
知識に基づくオブジェクトの起動および分解
[0067] 前述のように、知識フレームワークに含まれるメタデータを増強することによる、知識に基づくオブジェクトの起動および/またはオブジェクトの削除について、種々の実施形態をここで提供する。その全体像については既に示した。疑問を回避するために、「起動」という用語は、本明細書において用いる場合、広義の意味を有し、コンピューティングシステムにおいてデータをアクセス可能、作成、格納、または同期させることができるあらゆる方法に言及する。例えば、記載する起動能力は、同期の一部としてオブジェクトの表出を遅延させるが、ある種の判断基準が満たされたときに今後の同期を指定することが望ましいという状況に適用することができる。]
[0049] [0068] 同様に、「削除」または「分解」という用語も、広義に、コンピューティングシステムにおいて、データを除去、読み取り不能、またそうでなければアクセス不能にすることができる、あるいは同期させる他のオブジェクトと共に同期させなくすることができるあらゆる方法に言及する。例えば、記載する削除能力は、所定回数のイベントが発生した後にデータが失効になることが望ましい状況に提供することができる。]
[0050] [0069]マルチマスター同期環境において複数のネットワーク・ノード間で同期を行う種々の実施形態についてここで説明する。これは、同期させるオブジェクト(1つまたは複数)の起動および/または失効の観念を含むように、知識に基づく同期フレームワークを拡張する。この同期フレームワークによれば、同期させたデータの1つ又は複数のオブジェクトがいつ知識交換の目的で成立すべきか、または同期させたデータの1つ又は複数のオブジェクトがいつ知識交換の目的で存在するのを中止すべきかの定義を可能にするような方法で、終点がデータを同期させることができる利点がある。]
[0051] [0070] 前述のように、一実施形態では、所与のオブジェクトに対して、当該オブジェクトについての有効期限情報を表す知識ベクトル上に追加の次元(1つまたは複数)を置くことができる。同期プロセスの間これを根拠として、同期アプリケーションオブジェクトに対する動作をその有効期限の間だけ許可する。例えば、オブジェクトの開始に関して、前述の知識に基づくフレームワークにしたがって、あるオブジェクトがO5で表されており、オブジェクトOの第5バージョンの知識を示す場合、追加の起動項目を知識ベクトルにO5I3として追加することができ、O5I3によって、起動カウントが3回進んだ後に起動されることになっているオブジェクトOの第5バージョンの知識を示す。オブジェクト、例えば、オブジェクトO5の終了に関して、追加の失効項目を知識ベクトルにO5E7として追加することができ、O5E7は失効カウントが7回進んだ後に起動されることになっているオブジェクトOの第5バージョンの知識を示す。したがって、知識ベクトル上に置かれた追加の次元(1つまたは複数)に基づいて、オブジェクトの知識は、知識に基づく同期フレームワークにおいて、オブジェクトの起動および分解の観念を組み込むことになる。]
[0052] [0071] 前述のように、マルチマスター同期用同期フレームワークは、知識の概念に基づく同期のモデルを定義し、複製の状態に基づく同期の概要を定義する。多くの場合、同期させたデータの1つ又は複数のオブジェクトがいつ知識交換の目的で成立すべきか(例えば、将来の日付において電子メール・オブジェクトを同期する)、または同期させたデータの1つ又は複数のオブジェクトがいつ知識交換の目的で存在するのを中止すべきか、終点に定義させるような方法で、データを同期させることは有用である。]
[0053] [0072] いずれの状況であっても、所与のオブジェクトについて知識ベクトル上に置かれた追加の次元によって遂行することができる。]
[0054] [0073] 例えば、オブジェクトの知識が、あるデバイスにおいてIx:A5である場合、将来知識交換の一部としてこのオブジェクトを同期させるためには、オブジェクトの知識を単にIx:A5F4として増強することができる。これは、オブジェクトの知識をそのデバイスから同期の一部として受け取る解釈側終点が、F1、F2、およびF3を事前に仮定する条件が満たされない間は、オブジェクトIx:A5を存在するものとして扱わないことを意味する。これらの条件は、間隔、オブジェクトによる介在終点までのホップ回数、レンダリング回数、修正または編集回数、特定のアプリケーションによる動作回数、特定の外部イベントの発生回数等にしたがって、時間を過ごす(time passing)ことができる。即ち、将来関数(future function) Fを想定すると、この関数Fによって定義された発生回数をカウントした後に、将来データを同期する目的でオブジェクトを成立させる。]
[0055] [0074]オブジェクトの知識がIx:C8であるという別の例では、将来における知識交換の一部としてオブジェクトを同期させるのを中止させるには、オブジェクトの知識を単にIx:C8 S6として増強することができる。これが意味するのは、同期の一部としてオブジェクトの知識をそのオブジェクトから受け取る解釈側終点は、S1、S2、S3、S4、S5、およびS6を事前仮定する条件が満たされるまで、オブジェクト・データを同期させることを意味する。この場合も、これらの条件は、間隔、オブジェクトによる介在終点までのホップ回数、レンダリング回数、修正または編集回数、特定のアプリケーションによる動作回数、特定の外部イベントの発生回数等、即ち、解釈側デバイスによってオブジェクトを廃止するか否か判断することができることを考慮してチック・カウント(tick count)を割り当てることができるあらゆる関数Sにしたがって、時間を過ごす(time passing)ことができる。]
[0056] [0075] 種々の実施形態は、オブジェクトについての失効メタデータ、またはオブジェクトについての起動メタデータ、あるいは双方を含むことができる。図12は、オブジェクトについての失効メタデータは含むが、起動メタデータを含まない実施形態の流れ図である。このような知識交換において失効メタデータを用いる手法は、例えば、コンテンツ用のディジタル権利管理(DRM)の実施として有用であり、3回のデバイス共有の後、デバイス間における共有量を制限するためにコンテンツが失効し、ユーザーのデバイス間で同期しなくなる場合、あるいは予め設定した回数のレンダリングの後、販促素材を失効させることが望ましい場合に有用である。データ失効させるの別の用法は、サーバー上のデータの周期的削除について、例えば、オブジェクト作成から6カ月経過した後に、文書を失効させる方針を実施することである。疑問を回避するために、これらは非限定的な状況であり、同期体験の一部としてデータを失効させることが望ましい状況の数は無限である。] 図12
[0057] [0076]図12では、1200において、オブジェクトについて維持されている同期メタデータにおいて、このオブジェクトの失効カウントを定義する。これによって、このオブジェクト失効カウントが、当該オブジェクトに定められた失効させる回数に達した後、オブジェクトは失効する。次に、1210において、同期させる目的で、メタデータの失効カウントを失効回数と比較することによって、同期すべき各オブジェクトが既に失効しているか否か判断する。オブジェクト失効カウントは、所定の関数が満たされたときにはいつでも増大する(例えば、1月経過する毎、またはオブジェクトが変更される毎等)。1220において、失効していないオブジェクトを、マルチマスター同期環境における他のノード(1つまたは複数)と同期させる。1230において、失効したオブジェクトがあるかもしれないので、これらのオブジェクトを任意に削除することができる。また、一旦オブジェクトを削除すると、そのオブジェクトを記述するメタデータも任意に削除することができる。1240において、即ち、同期の合間には、いずれの数のイベントでも発生するかもしれず、同期するオブジェクトの集合に付随する失効カウントが増大する。端的に言えば、失効カウントが失効を示すと、もはやこのようなオブジェクトを同期させない。] 図12
[0058] [0077]図13は、オブジェクトについての起動メタデータは含まれるが、失効メタデータは含まれない実施形態の流れ図である(しかし、前述のように、起動メタデータおよび失効メタデータは1つの実施形態において独立して実施することができる)。知識交換において起動メタデータを用いるこのような手法は、例えば、コンテンツ用のディジタル権利管理(DRM)の実施として有用であり、コンテンツ所有者が、例えば、プレス・リリースの一部として、コンテンツのリリースを未だ許可していないが、プレス・リリースのコンテンツを同期させるために将来実行に移すことを望む場合に有用である。データの同期の起動を遅らせる別の用法は、コンテンツの同期前に、ユーザーにある種の行為を行う気にさせる、例えば、同期を許可する前にユーザーを登録することである。オブジェクトの起動を遅らせる別の用法は、将来における特定の時点まで送信を遅らせる、例えば、電子メールの送信を遅らせることである。疑問を回避するために、これらは非限定的な状況であり、同期体験の一部として将来データを起動することが望ましい状況の数は無制限である。] 図13
[0059] [0078]図13において、1300では、オブジェクトについて維持されている同期メタデータにおいて、当該オブジェクトの起動カウントを定義する。これによって、オブジェクトの起動カウントがそのオブジェクトについて定められた起動回数に達した後、オブジェクトが失効する。次いで、1310において、メタデータの起動カウンタを起動回数と比較することによって、同期する目的で、同期すべき各オブジェクトが起動されているか否か判断する。オブジェクトの起動カウントは、所定の機能が満たされるときにはいつでも増大する(例えば、1月が過ぎる毎、別の何らかのオブジェクトに対して作用があった後、関係するオブジェクトが成立した後等)。1320において、起動されているオブジェクトを他のノード(1つまたは複数)と、マルチマスター同期環境において同期させる。] 図13
[0060] [0079] 1330において、起動されたオブジェクトに対して、この時点では起動メタデータは関連がないと見なされる可能性があるので、任意に、いつ起動されたかに関するオブジェクトの知識(同期メタデータ)を削除することができる。また、このような知識を保存することもできる。更に、この合流点(junction)において、失効メタデータも用いる実施形態では、オブジェクトが起動される時点は、望ましければ、オブジェクトについて失効メタデータを定義するためにも適した時点となる。これに関して、一旦オブジェクトを起動したなら、したがって、そのオブジェクトを記述する起動メタデータを任意に削除することができる。1340において、即ち、同期の合間には、いずれの数のイベントでも発生するかもしれず、同期するオブジェクトの集合に付随する起動カウントが増大する。端的に言えば、起動カウントが起動を示すと、このようなオブジェクトは同期し始める。このようなオブジェクトは、起動時に作成することができ、あるいは前もって作成することができるが、起動までは同期させることができない。]
[0061] [0080]図14は、システムにおけるオブジェクトに関するデータの同期を起動および終了させるための、前述した同期メタデータに基づく、状態遷移図に関する概念を明記する。例えば、左上の状態において開始して、起動チックカウントが1、失効チックカウントが0である、オブジェクトOの第2バージョンを示す知識ベクトルO1_IT1_ET0を有するオブジェクトが、非開始状態1400(即ち、オブジェクトが同期しない)において示されている。この例では、同期プロセスが起動目標数を3に定めて、既定の関数が2回以上満たされたとき、即ち、オブジェクトOに付随する起動チックカウントが3に達したときに、オブジェクトOが起動され、同期状態1402に入り、これによってオブジェクトOは、前述のようなマルチマスター環境における典型的な知識交換にしたがって同期することになる。] 図14
[0062] [0081] 一旦状態1402において起動されて同期すると、次に失効チックカウンタを動作させ始めることができる。これに関して、同期プロセスは、オブジェクトに対して失効目標数を、例えば、10に定めることができる。既定の関数が10回満たされた後(例えば、10カ月の経過、あるいは10回のレンダリングまたは編集というような10回のイベントの発生)このオブジェクトの失効チックカウントが10回増大した後、オブジェクトは失効し失効状態1404に入る。図示のように、オブジェクトO1が5回の独立した変更を受けた後のO6のように、失効したオブジェクトの異なるバージョンであってもよい。前述のように、非開始状態1400において、オブジェクトについての失効チックカウント・メタデータを含めることは任意であり、更に同期状態1402または失効状態1404において、起動チックカウント・メタデータを含めることは任意である。]
[0063] [0082]図15は、一実施態様を記述する非限定的流れ図として、同期変化過程(life cycle)を通じて同期されるオブジェクトの遷移を示す。1500において、オブジェクトが作成され、このオブジェクトを同期の目的でいつアクティブにすべきかを決定する起動カウント数を、このオブジェクトに対して定めることができる。同期メタデータは、起動カウントを含む。起動カウントは、0に設定されており、オブジェクトがアクティブになるまで増大する準備ができている。1510において、既定の起動イベントが発生すると、オブジェクトの知識ベクトルにおいて表されている起動カウントが、起動カウント数に達してオブジェクトがアクティブになるまで、増大する。この段階で、オブジェクトは未起動から起動に移動する。] 図15
[0064] [0083] 1520において、オブジェクトを起動する。このため、このオブジェクトに失効カウント数を定めることができる。失効カウント数は、同期の目的で、このオブジェクトをいつ無視または削除すべきか決定する。同期メタデータは、失効カウントを含む。失効カウントは、0に設定されており、オブジェクトが失効になるまで増分する準備ができている。1530において、起動したオブジェクトの同期が、図5から図11において列挙した知識交換原理にしたがって行われる。1540において、既定の失効イベントが発生すると、1550において失効カウント数に達してオブジェクトが失効になるまで、オブジェクトの知識ベクトルにおいて表されている失効カウントが増大する。この段階で、オブジェクトは起動から失効に移動し、したがって、オブジェクトが知識交換要求の範囲内にあっても、このオブジェクトはもはや同期しない。ストレージを節約するために、失効したオブジェクトは任意に削除することができる。] 図11 図5
[0065] [0084]図16は、1組のAPIを通じて完全なまたは部分的な知識交換を実行するデバイス1600の非限定的実施態様例のブロック図である。図示のように、デバイス1600は、同期モジュール1620を含む。同期モジュール1620は、1組のオブジェクト1630を別のデバイスと同期させる知識交換技法を、非限定的な実施形態にしたがって実行する。また、1組のオブジェクト1630は、効率的な動作のためにキャッシュ(図示せず)に格納することができ、そしてこの1組のオブジェクト1630は、後にオフライン・アプリケーションによって更新することができる。同期モジュール1620は、本明細書において説明したように他のノードとの間における双方向知識交換技法にしたがってデータを全体的に送信および受信するために同期通信モジュール1622を含むことができる。] 図16
[0066] [0085] また、同期通信モジュール1622は、同期始動モジュール1624も含むことができる。同期始動モジュール1624は、許可された場合に、例えば、任意の同期モジュール1640を通じて第2デバイスとの同期を始動させ、第2デバイスと接続することができる。また、同期モジュール1622は、例えば、知識を得るまたは送るため、あるいは変更を得るまたは送るために、1組のオブジェクト1640についての完全なおよび/または部分的な知識1602を第2デバイスにAPIを通じて送ることによって、同期の始動に応答するI/Oモジュール1626も含むことができる。同様に、I/Oモジュール1626は、要求された第2デバイスの知識または変更1612、ならびに第2デバイスから生じた、1組のオブジェクト1630に対して行うべき変更を受信することができる。一方、同期分析モジュール1628は、行うべきあらゆる変更を1組のオブジェクト1630に適用するように動作し、更に第2デバイスから受信した知識1612を、第1デバイスの知識1602と比較して、ローカルに行うべき変更を決定するか、あるいはデバイス間における同期を完了させるために第2デバイスに送るように動作する。]
[0067] [0086] 本明細書における実施形態によれば、図5から図11と関連付けて説明したバージョン変更知識(versioning knowledge)1603のような、1組のオブジェクト1630のノードによって所有される知識1602は、知識に基づくフレームワークにおいていつオブジェクトが同期を開始するのかを定める起動知識1604、および/または知識に基づくフレームワークにおいていつオブジェクトが同期を停止するのかを定める失効知識1605を含むように増強される。
ネットワーク型および分散型環境の例
[0087] 当業者であれば、本明細書に記載した同期インフラストラクチャの種々の実施形態は、あらゆるコンピューターあるいはその他のクライアントまたはサーバー・デバイスと共に実現できることを認めることができる。これらのデバイスは、コンピューター・ネットワークの一部として、または分散型コンピューティング環境において配備することができ、更にいずれの種類のデータ・ストアにでも接続することができる。これに関して、本明細書に記載した種々の実施形態は、いずれの数のメモリーまたは記憶ユニット、ならびにいずれの数の記憶ユニットにまたがって現れるいずれの数のアプリケーションおよびプロセスを有するいずれのコンピューター・システムまたは環境においても実現することができる。これは、サーバー・コンピューターおよびクライアント・コンピューターを含み、ネットワーク環境あるいはリモートまたはローカル・ストレージを有する分散型コンピューティング環境に配備されている環境を含むが、これに限定されるのではない。] 図11 図5
[0068] [0088]分散型コンピューティングは、コンピューティング・デバイスおよびシステム間における通信型交換によって、コンピューター資源およびサービスの共有を提供する。これらの資源およびサービスは、情報の交換、ファイルのような、オブジェクトのキャッシュへの格納およびディスクへの格納を含む。また、これらの資源およびサービスは、負荷均衡、資源の拡大、処理の特殊化等のための、多数の処理ユニット間における処理パワーの共有を含む。分散型コンピューティングは、ネットワーク接続を利用して、クライアントがその集合的パワーを利用して企業全体に恩恵を与えることを可能にする。これに関して、種々のデバイスは、アプリケーション、オブジェクト、または資源を有することができ、これらは、本開示の種々の実施形態について説明したような、同期インフラストラクチャを用いることができる。]
[0069] [0089]図17は、ネットワーク型または分散型コンピューティング環境の一例の模式図を示す。この分散型コンピューティング環境は、コンピューティングオブジェクト1710、1712等、およびコンピューティングオブジェクトまたはデバイス1720、1722、1724、1726、1727等を備えており、これらは、アプリケーション1730、1732、1734、1736、1738で表すように、プログラム、方法、データ・ストア、プログラマブル・ロジック等を含むことができる。尚、オブジェクト1710、1712等、およびコンピューティングオブジェクトまたはデバイス1720、1722、1724、1726、1728等は、PDA、オーディオ/ビデオ・デバイス、移動体電話機、MP3プレーヤー、パーソナル・コンピューター、ラップトップ等のような、異なるデバイスを備えることができることを認めることができる。] 図17
[0070] [0090] 各オブジェクト1710、1712等、およびコンピューティングオブジェクトまたはデバイス1720、1722、1724、1726、1728等は、1つ又は複数の別のオブジェクト1710、1712等、およびコンピューティングオブジェクトまたはデバイス1720、1722、1724、1726、1728等を、通信ネットワーク1740を経由して直接または間接的に通信することができる。図17には1つのエレメントとして図示されているが、ネットワーク1740は、図17のシステムにサービスを提供するその他のコンピューティングオブジェクトおよびコンピューティング・デバイスを備えることもでき、および/または、図示しない多数の相互接続ネットワークを表すこともできる。また、各オブジェクト1710、1712等、または1720、1722、1724、1726、1728等は、アプリケーション1730、1732、1734、1736、1738のような、アプリケーションを内蔵することもできる。アプリケーションは、本開示の種々の実施形態にしたがって提供される同期インフラストラクチャとの通信またはその実現に適したAPI、その他のオブジェクト、ソフトウェア、ファームウェア、および/またはハードウェアを利用することもできる。] 図17
[0071] [0091]分散型コンピューティング環境をサポートする種々のシステム、コンポーネント、およびネットワーク構成がある。例えば、コンピューティングシステムは、有線またはワイヤレス・システムによって、ローカル・ネットワークによって、あるいは広く分散したネットワークによって互いに接続することができる。現在、多くのネットワークがインターネットに結合されており、インターネットは、広く分散したコンピューティングのためのインフラストラクチャを提供し、多くの異なるネットワークを包含するが、種々の実施形態において記載したような同期インフラストラクチャに付随する通信例には、あらゆるネットワーク・インフラストラクチャを用いることができる。]
[0072] [0092] つまり、クライアント/サーバー、ピア・ツー・ピア、または混成アーキテクチャーのような、ネットワーク・トポロジーおよびネットワーク・インフラストラクチャのホストを利用することができる。「クライアント」とは、それが関係しない他のクラスまたはグループのサービスを用いる多数のクラスまたはグループのことである。クライアントは、別のプログラムまたはプロセスによって提供されるサービスを要求するプロセス、即ち、大まかには1組の命令またはタスクとすることができる。クライアント・プロセスは、他のプログラムまたはサービス自体について何ら動作上の詳細を「知る」必要なく、要求されたサービスを利用する。]
[0073] [0093]クライアント/サーバー・アーキテクチャー、特に、ネットワーク型システムでは、クライアントは大抵の場合別のコンピューター、例えば、サーバーが提供する共有ネットワーク資源にアクセスするコンピューターである。図17の図では、非限定的な一例として、コンピューター1720、1722、1724、1726、1728等はクライアントとして考えることができ、そしてコンピューター1710、1712等はサーバーとして考えることができる。この場合、サーバー1710、1712等は、クライアント・コンピューター1720、1722、1724、1726、1728等からのデータ受信、データ・サービス、データの格納、データの処理、クライアント・コンピューター1720、1722、1724、1726、1728等へのデータ送信等というようなデータ・サービスを提供するが、状況に応じていずれのコンピューターもクライアント、サーバー、または双方と見なすことができる。これらのコンピューティング・デバイスはいずれも、データを処理し、1つ又は複数の実施形態について本明細書において説明したような同期インフラストラクチャと関わる可能性があるサービスまたはタスクを同期あるいは要求することができる。] 図17
[0074] [0094]サーバーは、通例、インターネットまたはワイヤレス・ネットワーク・インフラストラクチャのようなリモートまたはローカル・ネットワークを通じてアクセス可能なリモート・コンピューター・システムである。クライアント・プロセスは、第1コンピューター・システムにおいてアクティブであることができ、サーバー・プロセスは第2コンピューター・システムにおいてアクティブであることができ、互いに通信媒体を通じて通信し、こうして機能分散を行い、多数のクライアントがサーバーの情報収集能力を利用することを可能にする。同期インフラストラクチャにしたがって利用されるソフトウェア・オブジェクトはいずれも、単体で設けることができ、あるいは多数のコンピューティング・デバイスまたはオブジェクトに跨って分散することができる。]
[0075] [0095]通信ネットワーク/バス1740がインターネットであるネットワーク環境では、例えば、サーバー1710、1712等はウェブ・サーバーとすることができ、クライアント1720、1722、1724、1726、1728等は、ハイパーテキスト・トランスファ・プロトコル(HTTP)のような多数の周知のプロトコルのいずれによっても、これらのウェブ・サーバーと通信することができる。また、サーバー1710、1712等は、分散型コンピューティング環境に特徴的であると言えるが、クライアント1720、1722、1724、1726、1728等としての役割を果たすこともできる。
コンピューティング・デバイス例
[0096] 前述のように、本明細書に記載した技法は、コンピューティングシステムにおいて他のオブジェクトと同期することが望ましいいずれのデバイスにでも適用できるという利点がある。したがって、ハンドヘルド、携帯用、ならびに全ての種類のその他のコンピューティング・デバイスおよびコンピューティングオブジェクトは、種々の実施形態と共に用いることができる、即ち、デバイスが同期することができればどこででも用いることができると考えられる。したがって、図18において以下で説明する以下の汎用リモート・コンピューターは、コンピューティング・デバイスの一例に過ぎない。] 図18
[0076] [0097] 必須ではないが、実施形態は、部分的に、デバイスまたはオブジェクトのためのサービスの開発者によって用いられるための、オペレーティング・システムによって実現することができ、および/または本明細書に記載した種々の実施形態の1つ又は複数の機能的態様を実行するように動作するアプリケーション・ソフトウェア内に含めることができる。ソフトウェアは、クライアント・ワークステーション、サーバー、またはその他のデバイスというような1つ又は複数のコンピューターによって実行されるプログラム・モジュールのような、コンピューター実行可能命令という一般的なコンテキストで説明することができる。コンピューター・システムは種々の構成およびプロトコルを有し、これらを用いてデータを伝達することができ、つまり、特定の構成またはプロトコルを限定と見なしてはならないことは、当業者には認められよう。]
[0077] [0098]図18は、本明細書において記載した実施形態の1つ又は複数の態様を実現することができる、適したコンピューティングシステム環境1800の一例を示すが、先に明確にしたように、このコンピューティングシステム環境1800は、適したコンピューティング環境の一例に過ぎず、使用または機能の範囲について何らの限定をも示唆することは意図していない。コンピューティング環境1800が、当該コンピューティング環境例1800において図示されるコンポーネントのいずれの1つまたはその組み合わせに関しても、依存性や必須要件を有するという解釈を決して行ってはならない。] 図18
[0078] [0099]図18を参照すると、1つ又は複数の実施形態を実現するリモート・デバイス例は、コンピューター1810の形態とした汎用コンピューティング・デバイスを含む。コンピューター1810のコンポーネントは、演算装置1820、システム・メモリー1830、およびシステム・バス1822を含むことができるが、これらに限定されるのではない。システム・バス1822は、システム・メモリーを含む種々のシステム・コンポーネントを演算装置1820に結合する。] 図18
[0079] [00100]コンピューター1810は、通例、種々のコンピューター読み取り可能媒体を含み、コンピューター1810によってアクセスできる入手可能な媒体であればいずれでも可能である。システム・メモリー1830は、リード・オンリー・メモリー(ROM)および/またはランダム・アクセス・メモリー(RAM)というような、揮発性および/または不揮発性メモリーの形態としたコンピューター記憶媒体を含むことができる。一例として、そして限定ではなく、メモリー1830はオペレーティング・システム、アプリケーション・プログラム、その他のプログラム・モジュール、およびプログラム・データも含むことができる。]
[0080] [00101]ユーザーは、入力デバイス1840を通じて、コマンドおよび情報をコンピューター1810に入力することができる。モニターまたはその他の種類のディスプレイ・デバイスも、出力インターフェース1850のようなインターフェースを通じて、システム・バス1822に接続されている。モニターに加えて、コンピューターは、スピーカーおよびプリンターというような、その他の周辺出力デバイスも含むことができ、これらは出力インターフェース1850を通じて接続することができる。]
[0081] [00102]コンピューター1810は、リモート・コンピューター1870のような、1つ又は複数の別のリモート・コンピューターへの論理接続を用いて、ネットワーク型または分散型環境において動作することができる。リモート・コンピューター1870は、パーソナル・コンピューター、サーバー、ルーター、ネットワークPC、ピア・デバイスまたはその他の共通ネットワーク・ノード、あるいはその他のいずれのリモート・メディア消費または送信デバイスであってもよく、コンピューター1810に関して先に述べたエレメントのいずれでもまたは全てを含むことができる。図18に示す論理接続は、ローカル・エリア・ネットワーク(LAN)またはワイド・エリア・ネットワーク(WAN)のようなネットワーク1872を含むだけでなく、他のネットワーク/バスも含むことができる。このようなネットワーキング環境は、家庭、事務所、企業規模のコンピューター・ネットワーク、イントラネット、およびインターネットでは極普通である。] 図18
[0082] [00103] 前述のように、種々のコンピューティング・デバイスおよびネットワーク・アーキテクチャと関連付けて実施形態例について説明したが、基礎となる概念は、同期することが望ましいネットワーク・システムおよびコンピューティング・デバイスまたはシステムであればいずれにでも適用することができる。]
[0083] [00104] また、同一または同様の機能を実現するには多数の方法があり、例えば、アプリケーションおよびサービスが同期インフラストラクチャを用いることを可能にする、しかるべきAPI、ツール・キット、ドライバー・コード、オペレーティング・システム、制御、単体またはダウンロード可能なソフトウェア・オブジェクト等が上げられる。つまり、本明細書における実施形態は、同期能力を提供するソフトウェアまたはハードウェア・オブジェクトからだけでなく、API(またはその他のソフトウェア・オブジェクト)の観点からも考えられる。つまり、本明細書において記載した種々の実施形態は、完全にハードウェア、部分的にハードウェアおよび部分的にソフトウェア、ならびにソフトウェアとした態様を有することができる。]
[0084] [00105] 「一例の」(exemplary)という用語は、本明細書では、一例、実例、または例示として役割を果たすことを意図して用いられている。疑問を回避するために、本明細書に開示した主題は、このような例には限定されないものとする。加えて、本明細書において「一例」として記載されるいずれの態様または設計も、他の態様または設計よりも好ましいまたは有利であると必ずしも解釈される訳ではなく、当業者には周知である同等の代表的な構造や技法を排除することを意図するのでもない。更に、「含む」、「有する」、「内蔵する」、およびその他の同様の単語が詳細な説明または特許請求の範囲のいずれかにおいて用いられる限りにおいて、疑問を回避するために、このような単語は、あらゆる追加の要素または他の要素をも排除しない開いた移行性単語としての「備えている」(comprise)という用語と同様に、内包的であることを意図している。]
[0085] [00106] 「限定有効期限」という用語は、オブジェクトの存在の開始および/または終了を制限するように、同期システムにおけるオブジェクトの存在に対する制限に言及するものとする。]
[0086] [00107] 前述のように、本明細書に記載した種々の技法は、ハードウェアまたはソフトウェア、あるいはしかるべき場合には双方の組み合わせと合わせて実現することができる。本明細書において用いる場合、「コンポーネント」、「システム」等の用語は、同様に、コンピューター関係エンティティ、ハードウェア、ハードウェアおよびソフトウェアの組み合わせ、ソフトウェア、または実行中のソフトウェアのいずれかに言及することを意図している。例えば、コンポーネントは、プロセッサにおいて実行中のプロセス、プロセッサ、オブジェクト、エクゼキュータブル、実行スレッド、プログラム、および/またはコンピューターとすることができるが、これらに限定されるのではない。例示すると、コンピューターにおいて実行しているアプリケーションおよびコンピューターの双方がコンポーネントであることができる。1つ又は複数のコンポーネントは、プロセスおよび/または実行のスレッドの内部に位置することができ、更にコンポーネントは1つのコンピューターに局在化すること、および/または2つ以上のコンピューター間に分散することができる。]
[0087] [00108] 前述のシステムは、様々なコンポーネント間における相互作用に関して説明した。尚、このようなシステムおよびコンポーネントは、それらのコンポーネントまたは指定されたサブコンポーネント、指定されたコンポーネントまたはサブコンポーネントの一部、および/または追加のコンポーネントを、そして以上のものの種々の順列および組み合わせにしたがって、含むことができることが認めることができる。また、サブコンポーネントは、親のコンポーネント(階層的)に含まれるのではなく、他のコンポーネントに通信状態で結合されているコンポーネントとして実現することもできる。加えて、1つ又は複数のコンポーネントを1つのコンポーネントに組み合わせて集約機能を備えること、または数個の別個のサブコンポーネントに分割することもできること、そして管理レイヤのような1つ又は複数のいずれの中間レイヤであっても、統合した機能を備えるために、このようなサブコンポーネントに通信状態で結合するように備えることもできることは注記してしかるべきである。本明細書に記載したいずれのコンポーネントも、本明細書には具体的に記載しなかったが当業者には一般に周知の1つ又は複数のその他のコンポーネントと相互作用することもできる。]
[0088] [00109] 以上に記載したシステム例を考慮して、記載した主題にしたがって実現することができる方法は、種々の図のフローチャートを参照すると、一層その真価が認められよう。説明の簡素化という目的のために、これらの方法は一連のブロックとして示しそして説明したが、特許請求する主題は、これらのブロックの順序には限定されないことは言うまでないことであり、認められるべきである。何故なら、一部のブロックは異なる順序で現れても、および/または本明細書において図示および説明したブロックとは別のブロックと同時に現れてもよいからである。フローチャートによって、非連続的な、または分岐するフローが示される場合、種々の他の分岐、フロー経路、およびブロックの順序も実施することができ、同一または同様の結果が得られることを認めることができる。更に、図示したブロックの全てが、以後に記載する方法を実現するために必要ではない場合もある。]
[0089] [00110] 本明細書に記載した種々の実施形態に加えて、他の同様の実施形態を用いることができ、あるいは対応する実施形態(群)の同一または同等の機能を実行するために、当該実施形態から逸脱することなく、記載した実施形態(群)に対して変更および追加を行うこともできることは言うまでもない。更にまた、多数の処理チップまたは多数のデバイスが、本明細書に記載した1つ又は複数の機能の遂行を共有することができ、複数のデバイスに跨って格納を行うことができる。したがって、本発明は、いずれの一実施形態にも実施形態の集合体にも限定されず、逆に添付した請求項に応じた広さ、主旨および範囲で解釈すべきものとする。]
权利要求:

請求項1
マルチマスター同期環境において1つ又は複数のネットワークを通じて通信状態に結合されている複数のノードの内、第1ノードと第2ノードとの間において1組のオブジェクトを同期する方法であって、前記第1ノードによって、前記1組のオブジェクトの内少なくとも1つのオブジェクトを、限定有効期限を有するように定義し(300)、前記少なくとも1つのオブジェクトの前記限定有効期限を示す有効期限メタデータを含むように前記第1ノード上において表される前記1組のオブジェクトに関する前記第1ノードの同期知識メタデータを更新するステップであって、前記同期知識メタデータの表現がデータ・タイプには独立している、ステップと、前記第1ノードによって、前記第2ノードと同期する(330)ステップであって、該同期が、前記第1ノードによって前記第2ノードに、前記第1ノードの前記更新した同期知識メタデータを送信することを含み、前記第1ノード上で表される前記1組のオブジェクトのバージョンを表す、前記1組のオブジェクトのオブジェクトに対する、対応するバージョン・メタデータと、前記オブジェクトに対するあらゆる対応する有効期限メタデータとを送信することを含む、ステップと、を備えている、方法。
請求項2
請求項1記載の方法において、前記定義するステップは、前記少なくとも1つのオブジェクトに対して失効回数を定めることを含み、前記少なくとも1つのオブジェクトは、既定イベントが前記失効回数だけ発生した後に失効となり、前記有効期限メタデータは前記所定回数を含む、方法。
請求項3
請求項1記載の方法において、前記定義するステップ(300)は、前記少なくとも1つのオブジェクトに対して起動回数を定めることを含み、前記少なくとも1つのオブジェクトは、既定のイベントが前記起動回数だけ発生するまで、同期アプリケーションによる前記少なくとも1つのオブジェクトに対して動作する目的で、前記1組のオブジェクトを加入させず、前記有効期限メタデータは前記起動回数を含む、方法。
請求項4
請求項1記載の方法であって、更に、前記第1ノードによって、前記同期知識メタデータを分析し(320)、前記少なくとも1つのオブジェクトの失効を示す、対応の有効期限メタデータを有する少なくとも1つのオブジェクトを決定するステップと、前記第1ノードによって、前記少なくとも1つのオブジェクトを削除し(340)、前記少なくとも1つのオブジェクトのあらゆる知識を除去するために、前記同期知識メタデータを更新するステップと、を備えている、方法。
請求項5
請求項1記載の方法であって、更に、前記第1ノードによって、前記同期知識メタデータを分析し(320)、前記少なくとも1つのオブジェクトの起動を示す、対応の有効期限メタデータを有する少なくとも1つのオブジェクトを決定するステップと、前記少なくとも1つのオブジェクトが、前記1組のオブジェクトの一部として起動されることを反映するために、前記同期知識メタデータを更新する(350)ステップと、を備えている、方法。
請求項6
請求項5記載の方法において、前記更新する(350)ステップは、前記少なくとも1つのオブジェクトの起動を表す前記有効期限メタデータを、前記同期知識メタデータから削除することを含む、方法。
請求項7
マルチマスター同期環境において1つ又は複数のネットワークを通じて通信状態に結合されている複数のノードの内、第2ノードと第1ノードとの間において1組のオブジェクトを同期する方法であって、前記第1ノードによって前記第2ノードから、前記第2ノード上で表されている前記1組のオブジェクトに関する外部同期知識を受信する(310)ステップであって、前記同期知識が、前記1組のオブジェクトについてのデータ範囲と、前記第2ノード上で表されている前記1組のオブジェクトのオブジェクト群についての対応するバージョンと、前記1組のオブジェクトの前記オブジェクト群の内少なくとも1つについての対応する失効情報とを含み、前記同期知識の表現がデータ・タイプには独立している、ステップと、前記第1ノード上で表されている前記1組のオブジェクトに関する前記第1ノードのローカル同期知識を、前記第2ノードの外部同期知識と比較する(320)ステップと、前記オブジェクト群の内少なくとも1つのオブジェクトについての前記失効情報が、前記オブジェクトの失効を示すか否か判断する(1210)ステップと、を備えている、方法。
請求項8
請求項7記載の方法であって、更に、前記オブジェクトについての前記失効情報が失効を示す場合、前記データ範囲内で前記第1ノード上で表されている前記1組のオブジェクトから前記オブジェクトを除去するために、前記ローカル同期知識を更新する(1230)ステップを備えている、方法。
請求項9
請求項8記載の方法において、前記オブジェクトを除去するために前記ローカル同期知識を更新する(1230)ステップは、更に、前記オブジェクトを前記第1ノードから削除することを含む、方法。
請求項10
請求項8記載の方法において、前記オブジェクトを除去するために前記ローカル同期知識を更新する(1230)ステップは、更に、前記オブジェクトに関するあらゆる同期メタデータを、前記ローカル同期知識から削除することを含む、方法。
請求項11
請求項7記載の方法であって、更に、前記第2ノード上で表されている前記1組のオブジェクトの前記外部知識に対する変更と、前記第2ノード上で表されている前記1組のオブジェクトに対する対応する変更とを、前記比較するステップに基づいて決定する(320)ステップと、前記外部知識に対する変更と、前記1組のオブジェクトに対する対応する変更とを前記第2ノードに送信する(330)ステップと、を備えている、方法。
請求項12
請求項7記載の方法において、前記判断する(1210)ステップは、前記第1ノードによって、前記オブジェクトについての前記失効情報によって表される回数の関数が満たされているか否か判断することを含む、方法。
請求項13
請求項7記載の方法において、前記判断する(1210)ステップは、前記第1ノードによって、前記オブジェクトに対する既定の動作がある回数実行されたか否か判断することを含む、方法。
請求項14
請求項7記載の方法において、前記判断する(1210)ステップは、前記第1ノードによって、前記オブジェクトの開始時刻に対して、ある回数の既定の時間期間が経過したか否か判断することを含む、方法。
請求項15
請求項7記載の方法において、前記判断する(1210)ステップは、前記第1ノードによって、前記オブジェクトに対して外部の既定イベントがある回数実行されたか否か判断することを含む、方法。
請求項16
マルチマスター同期環境において1つ又は複数のネットワークを通じて接続可能な複数のノード内にあるノードであって、当該ノードと前記複数のノードの内別のノードとの間において1組のオブジェクトを同期させ、該ノードが、前記複数のノードの内当該ノードと前記別のノードとの間において前記1組のオブジェクトを同期させる同期コンポーネント(1620)を備えており、該同期コンポーネントが、データ・タイプには独立して、前記別のノードと当該ノードとの間における知識交換のためのメタデータ構造を定義する同期プロトコルによって前記別のノードとの同期を開始し、前記同期プロトコルに基づいて、前記別のノードに、前記1組のオブジェクトと同期する要求を送信し、応答した前記別のノードから前記1組のオブジェクトの外部知識を受信する同期通信コンポーネント(1622)であって、前記外部知識が、前記別のノード上で表されている前記1組のオブジェクトに対応する別ノード・オブジェクト・バージョン変更情報と、前記別のノード上で表された前記1組のオブジェクトの内少なくとも1つのオブジェクトに対応し、前記少なくとも1つのオブジェクトが前記マルチマスター同期環境において同期の目的で起動するときを示す別ノード・オブジェクト起動情報とを含む、同期通信コンポーネントと、前記1組のオブジェクトの前記外部知識と、対応する別ノード・オブジェクト・バージョン変更情報と、対応する別ノード・オブジェクト起動情報とを、前記1組のオブジェクトの前記ローカル知識と、対応するノード・オブジェクト・バージョン変更情報と、対応するノード・オブジェクト起動情報と比較することによって、当該ノード上で表されている前記1組のオブジェクトのローカル知識と、対応するノード・オブジェクト・バージョン変更情報とを更新して、前記1組のローカル知識と、対応するノード・オブジェクト・バージョン変更情報と、対応するノード・オブジェクト起動情報の更新によって、どのような変更を反映させるべきか決定する同期分析コンポーネント(1628)と、を備えている、ノード。
請求項17
請求項16記載のノードにおいて、対応するノード・オブジェクト起動情報を有する前記更新したローカル知識によって表される前記1組のオブジェクトの内オブジェクト毎に、前記同期分析コンポーネント1628は、前記ノード・オブジェクト起動情報に指定されている回数の関数が、当該オブジェクトに対して満たされたか否か判断する、ノード。
請求項18
請求項17記載のノードにおいて、前記関数が当該ノードに対して満たされない場合、前記同期分析コンポーネント1628は、前記1組のオブジェクトに関する前記マルチマスター同期環境のプロセスが前記オブジェクトにアクセスするのを妨げる、ノード。
請求項19
請求項16記載のノードにおいて、前記同期分析コンポーネント1628は、前記1組のオブジェクトの前記外部知識と、対応する別オブジェクト・バージョン変更情報と、対応する別オブジェクト起動情報とを、前記1組のオブジェクトの前記ローカル知識と、対応するノード・オブジェクト・バージョン変更情報と、対応するノード・オブジェクト起動情報とを用いて分析し、前記別のノードが何を知らないか判断し、それについて当該別のノードにどのような変更を送るべきか判断する、ノード。
請求項20
請求項16記載のノードにおいて、前記同期プロトコルは、当該ノード700と前記別のノード710との間で同期されている実際のデータの大要(schema)を全く規定しない、ノード。
类似技术:
公开号 | 公开日 | 专利标题
JP6670274B2|2020-03-18|分散計算システムにおける計算クラスタのスケーリング
US9294566B2|2016-03-22|Data synchronization
US9135279B2|2015-09-15|Mesh-managing data across a distributed set of devices
Pujol et al.2010|The little engine | that could: scaling online social networks
US8533363B2|2013-09-10|Updating multiple computing devices
KR101923245B1|2018-11-28|투명한 장애 극복 기법
Ramasubramanian et al.2009|Cimbiosys: A platform for content-based partial replication
JP6220338B2|2017-10-25|フォールトトレラント外部アプリケーションサーバ
JP6345770B2|2018-06-20|同期フレームワークの拡張可能性
US8738567B2|2014-05-27|Network file system with enhanced collaboration features
US8825758B2|2014-09-02|Collaborative authoring modes
US7818679B2|2010-10-19|Method, system, and apparatus for enabling near real time collaboration on an electronic document through a plurality of computer systems
US6868539B1|2005-03-15|System and method providing single application image
US7752166B2|2010-07-06|System and methods for asynchronous synchronization
EP2255295B1|2014-10-15|Application management within deployable object hierarchy
JP5289063B2|2013-09-11|同期ピア参加モデル
RU2324970C2|2008-05-20|Распределенные вычисления на основе идентичности для ресурсов устройств
CN101981557B|2013-10-16|计算环境表示
JP4851113B2|2012-01-11|System and method for implementing a pull-type autonomous synchronization system based on peer-to-peer rules
US20140289382A1|2014-09-25|Utilizing version vectors across server and client changes to determine device usage by type, app, and time of day
JP4643915B2|2011-03-02|複製ファイルの複数のファイル状態を管理する方法
TWI352910B|2011-11-21|Efficient knowledge representation in data synchro
US8095504B2|2012-01-10|N-way synchronization of computer databases
KR101055030B1|2011-08-05|데이터 서버 관리형 웹 서비스 런타임용 장치, 시스템 및 방법
JP5277251B2|2013-08-28|モデル・ベースのコンポジット・アプリケーション・プラットフォーム
同族专利:
公开号 | 公开日
CN101933291A|2010-12-29|
EP2241059A1|2010-10-20|
US20090196311A1|2009-08-06|
WO2009099502A1|2009-08-13|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题
US20050160088A1|2001-05-17|2005-07-21|Todd Scallan|System and method for metadata-based distribution of content|
US20060215569A1|2003-07-31|2006-09-28|Microsoft Corporation|Synchronization peer participant model|
US20060106881A1|2004-10-25|2006-05-18|Empower Technologies|System and method for global data synchronization|JP2015520435A|2012-04-05|2015-07-16|マイクロソフト コーポレーション|クラウド同期システムのためのテレメトリ・システム|US7257134B2|2001-10-03|2007-08-14|Zarlink Semiconductor V.N. Inc.|Method of pacing the synchronization of routing information in a data switching environment|
CN1625878B|2002-04-15|2010-06-16|诺基亚有限公司|用于处理同步相关信息的方法和设备|
WO2003088081A1|2002-04-17|2003-10-23|Nokia Corporation|Method and network device for synchronization of database data routed through a router|
US20040044799A1|2002-09-03|2004-03-04|Nokia Corporation|Method, device and system for synchronizing of data providing for the handling of an interrupted synchronization process|
FI114750B|2002-10-29|2004-12-15|Nokia Corp|Datan synkronoiminen|
US20040153473A1|2002-11-21|2004-08-05|Norman Hutchinson|Method and system for synchronizing data in peer to peer networking environments|
WO2004068873A2|2003-01-27|2004-08-12|Tailwind Solutions, Inc.|Distributed application infrastructure|
US20060008256A1|2003-10-01|2006-01-12|Khedouri Robert K|Audio visual player apparatus and system and method of content distribution using the same|
US20060031264A1|2004-05-20|2006-02-09|Bea Systems, Inc.|Synchronization protocol for occasionally-connected application server|
US7970017B2|2005-07-13|2011-06-28|At&T Intellectual Property I, L.P.|Peer-to-peer synchronization of data between devices|
US7930346B2|2005-08-24|2011-04-19|Microsoft Corporation|Security in peer to peer synchronization applications|
US8024290B2|2005-11-14|2011-09-20|Yahoo! Inc.|Data synchronization and device handling|
US7974946B2|2006-03-28|2011-07-05|Alps Electric , Inc.|System and method for synchronizing personal data among a plurality of devices storing such data|
US7890646B2|2006-04-27|2011-02-15|Microsoft Corporation|Synchronization orchestration|US8185495B2|2008-02-01|2012-05-22|Microsoft Corporation|Representation of qualitative object changes in a knowledge based framework for a multi-master synchronization environment|
US9141483B1|2008-03-27|2015-09-22|Dropbox, Inc.|System and method for multi-tier synchronization|
GB0906004D0|2009-04-07|2009-05-20|Omnifone Ltd|MusicStation desktop|
KR101697979B1|2010-11-23|2017-01-19|삼성전자주식회사|네트워크로 연결 가능한 기기에서 데이터를 동기화하기 위한 장치 및 방법|
US9031909B2|2011-11-29|2015-05-12|Microsoft Technology Licensing, Llc|Provisioning and/or synchronizing using common metadata|
US9197700B2|2013-01-18|2015-11-24|Apple Inc.|Keychain syncing|
CN106713487B|2017-01-16|2020-10-09|腾讯科技(深圳)有限公司|数据的同步方法和装置|
法律状态:
2011-12-28| A521| Written amendment|Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111227 |
2011-12-28| A621| Written request for application examination|Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20111227 |
2013-01-25| A131| Notification of reasons for refusal|Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130124 |
2013-08-02| A02| Decision of refusal|Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20130801 |
优先权:
申请号 | 申请日 | 专利标题
[返回顶部]